﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AllegroWebAPI
{
    public class CategoryTree : BaseAllegroExt
    {
        public CategoryTree(AllegroClient a)
            : base(a)
        { 

        }
        /// <summary>
        /// Metoda pozwala na pobranie ścieżki kategorii dla podanego w wywołaniu identyfikatora kategorii.
        /// </summary>
        /// <param name="categoryId"></param>
        /// <returns></returns>
        public IEnumerable<CategoryData> GetCategoryPath(int categoryId)
        {
            return aapi.WebService.doGetCategoryPath(aapi.SessionHandle, categoryId);
        }


        /// <summary>
        /// Metoda pozwala na pobranie pełnego drzewa kategorii dostępnych we wskazanym kraju. 
        /// </summary>
        /// <returns></returns>
        public IEnumerable<CatInfoType> GetCatsData()
        {
            long o1 = 0;
            string o2 = "";
            return aapi.WebService.doGetCatsData(aapi.CountryId, 1, aapi.WebApiKey, out o1, out o2);
        }

        /// <summary>
        /// Metoda pozwala na pobranie w porcjach pełnego drzewa kategorii dostępnych we wskazanym kraju. Domyślnie zwracanych jest 50 pierwszych kategorii. Rozmiar porcji pozwala regulować parametr package-element, a sterowanie pobieraniem kolejnych porcji danych umożliwia parametr offset. 
        /// </summary>
        /// <returns></returns>
        public IEnumerable<CatInfoType> GetCatsDataLimit(int offset, int pagesize)
        {
            long o1 = 0;
            string o2 = "";
            return aapi.WebService.doGetCatsDataLimit(aapi.CountryId, 1, aapi.WebApiKey, offset, pagesize, out o1, out o2).ToList();
        }

        /// <summary>
        /// Metoda pozwala na pobranie licznika kategorii dostępnych we wskazanym kraju. 
        /// </summary>
        /// <returns></returns>
        public int GetCatsDataCount()
        {
            long o1 = 0;
            string o2 = "";
            return aapi.WebService.doGetCatsDataCount(aapi.CountryId, 1, aapi.WebApiKey, out o1, out o2);
        }




    }
}
